<

非推奨の API は v3.7 以降削除されました

まとめ

Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 3.7 安定版リリースは削除されました。

影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。

変更点

このセクションでは、影響を受けるクラスごとに非推奨をリストします。

GestureRecognizer.kindサブクラスと

Flutter Fixによるサポート: はい

GestureRecognizer.kindv2.3 で非推奨になりました。 使用GestureRecognizer.supportedDevicesその代わり。

これと同じ変更は、次のすべてのサブクラスに影響します。GestureRecognizer:

  • EagerGestureRecognizer
  • ForcePressGestureRecognizer
  • LongPressGestureRecognizer
  • DragGestureRecognizer
  • VerticalDragGestureRecognizer
  • HorizontalDragGestureRecognizer
  • MultiDragGestureRecognizer
  • ImmediateMultiDragGestureRecognizer
  • HorizontalMultiDragGestureRecognizer
  • VerticalMultiDragGestureRecognizer
  • DelayedMultiDragGestureRecognizer
  • DoubleTapGestureRecognizer
  • MultiTapGestureRecognizer
  • OneSequenceGestureRecognizer
  • PrimaryPointerGestureRecognizer
  • ScaleGestureRecognizer

この変更により、複数のデバイスがジェスチャを認識できるようになりました。 単一のオプションよりもkind提供された。

移行ガイド

移行前のコード:

var myRecognizer = GestureRecognizer(
  kind: PointerDeviceKind.mouse,  
);

移行後のコード:

var myRecognizer = GestureRecognizer(
  supportedDevices: <PointerDeviceKind>[ PointerDeviceKind.mouse ],
);

参考文献

API ドキュメント:

  • GestureRecognizer
  • EagerGestureRecognizer
  • ForcePressGestureRecognizer
  • LongPressGestureRecognizer
  • DragGestureRecognizer
  • VerticalDragGestureRecognizer
  • HorizontalDragGestureRecognizer
  • MultiDragGestureRecognizer
  • ImmediateMultiDragGestureRecognizer
  • HorizontalMultiDragGestureRecognizer
  • VerticalMultiDragGestureRecognizer
  • DelayedMultiDragGestureRecognizer
  • DoubleTapGestureRecognizer
  • MultiTapGestureRecognizer
  • OneSequenceGestureRecognizer
  • PrimaryPointerGestureRecognizer
  • ScaleGestureRecognizer

関連する PR:

  • で廃止されました#81858
  • に削除されました#119572

ThemeData accentColoraccentColorBrightnessaccentColorTextThemeaccentColorIconTheme、 とbuttonColor

Flutter Fixによるサポート: はい

accentColoraccentColorBrightnessaccentColorTextThemeaccentColorIconTheme、 とbuttonColorの性質ThemeDataそうだった v2.3 では非推奨になりました。

この変更はより適切に調整されましたThemeDataマテリアル デザイン ガイドラインを参照してください。また コアの配色または 希望のスタイルに合わせた個々のコンポーネントのテーマ。

accentColorBrightnessaccentColorTextThemeaccentColorIconTheme、 とbuttonColorフレームワークでは使用されなくなりました。 参照は削除する必要があります。

の用途ThemeData.accentColorと置き換える必要がありますThemeData.colorScheme.secondary

移行ガイド

移行前のコード:

var myTheme = ThemeData(
  //...
  accentColor: Colors.blue,
  //...
);
var color = myTheme.accentColor;

移行後のコード:

var myTheme = ThemeData(
  //...
  colorScheme: ColorScheme(
    //...
    secondary:Colors.blue,
    //...
  ),
  //...
);
var color = myTheme.colorScheme.secondary;

参考文献

API ドキュメント:

  • ThemeData
  • ColorScheme

関連する問題:

  • #56639
  • #84748
  • #56918
  • #91772

関連する PR:

以下で非推奨になりました:

  • #92822
  • #81336
  • #85144

削除された場所:

  • #118658
  • #119360
  • #120577
  • #120932

AppBarSliverAppBar、 とAppBarThemeアップデート

Flutter Fixによるサポート: はい

v2.4 では、アプリ バー クラスとそのテーマにいくつかの変更が加えられました。 マテリアル デザインとの整合性が向上します。いくつかのプロパティはその時点で非推奨になりました 時間と削除されています。

ためにAppBarSliverAppBarAppBarTheme:

  • brightnessが削除され、代わりにsystemOverlayStyle
  • textThemeは削除され、次のいずれかに置き換えられますtoolbarTextStyleまたtitleTextStyle
  • backwardsCompatibilityこれはこれらのプロパティの一時的な移行フラグであったため、削除できます。

さらに、AppBarTheme.color削除されました、AppBarTheme.backgroundColorその代替品として。

移行ガイド

移行前のコード:

var toolbarTextStyle = TextStyle(...);
var titleTextStyle = TextStyle(...);
AppBar(
  brightness: Brightness.light,
  textTheme: TextTheme(
    bodyMedium: toolbarTextStyle,
    titleLarge: titleTextStyle,
  )
  backwardsCompatibility: true,
);
AppBarTheme(color: Colors.blue);

移行後のコード:

var toolbarTextStyle = TextStyle(...);
var titleTextStyle = TextStyle(...);
AppBar(
  systemOverlayStyle: SystemOverlayStyle(statusBarBrightness: Brightness.light),
  toolbarTextStyle: toolbarTextStyle,
  titleTextStyle: titleTextStyle,
);
AppBarTheme(backgroundColor: Colors.blue);

参考文献

API ドキュメント:

  • AppBar
  • SliverAppBar
  • AppBarTheme

関連する問題:

  • #86127
  • #70645
  • #67921
  • #67497
  • #50606
  • #51820
  • #61618

以下で非推奨になりました:

  • #86198
  • #71184

削除された場所:

  • #120618
  • #119253
  • #120575

SystemChrome.setEnabledSystemUIOverlays

Flutter Fixによるサポート: はい

v2.3では、SystemChrome.setEnabledSystemUIOVerlays、静的メソッド ステータス バーやナビゲーション バーなどのデバイス システム レベルのオーバーレイを設定する を支持して非推奨になりましたSystemChrome.setEnabledSystemUIMode

この変更により、ネイティブと一致する共通のフルスクリーン モードをセットアップできるようになりました。 Android アプリはエッジ トゥ エッジのようなデザインです。

特定のモードを選択する代わりに、オーバーレイを手動で設定することは依然として可能です。 を通じてサポートされましたSystemUiMode.manual、開発者が同じものを渡すことができるようにする 前と同様にオーバーレイのリスト。

移行ガイド

移行前のコード:

SystemChrome.setEnabledSystemUIOverlays(<SystemUiOverlay>[
  SystemUiOverlay.top,
  SystemUiOverlay.bottom,
]);

移行後のコード:

SystemChrome.setEnabledSystemUIMode(
  SystemUiMode.manual,
  overlays: <SystemUiOverlay>[
    SystemUiOverlay.top,
    SystemUiOverlay.bottom,
  ],
);

参考文献

API ドキュメント:

  • SystemChrome

関連する問題:

  • #35748
  • #40974
  • #44033
  • #63761
  • #69999

以下で非推奨になりました:

  • #81303

削除された場所:

  • #11957

SystemNavigator.routeUpdated

Flutter Fixによるサポート: はい

v2.3では、SystemNavigator.routeUpdatedを支持して非推奨になりましたSystemNavigator.routeInformationUpdated

現在のルートに関してエンジンを更新する 2 つの方法がある代わりに、 変更により、すべてが 1 つの API に移動され、単一エントリが個別に選択されます。 履歴モードの場合Navigatorルートが作成されたことを報告するもの。

移行ガイド

移行前のコード:

SystemNavigator.routeUpdated(routeName: 'foo', previousRouteName: 'bar');

移行後のコード:

SystemNavigator.routeInformationUpdated(location: 'foo');

参考文献

API ドキュメント:

  • SystemNavigator

関連する問題:

  • #82574

以下で非推奨になりました:

  • #82594

削除された場所:

  • #119187

AnimatedSize.vsync

Flutter Fixによるサポート: はい

v2.2では、AnimatedSize.vsyc廃止されました。この物件は廃止されました その後に必要なAnimatedSizeに変換されましたStatefulWidgetだれのState混ざっているSingleTickerProviderStateMixin。記憶を修正するために変更が行われました リーク。

の用途vsyncのように削除する必要がありますAnimatedSizeがこのプロパティを処理するようになりました。

移行ガイド

移行前のコード:

AnimatedSize(
  vsync: this,
  // ...
);

移行後のコード:

AnimatedSize(
  // ...
);

参考文献

API ドキュメント:

  • AnimatedSize

以下で非推奨になりました:

  • #80554
  • #81067

削除された場所:

  • #119186

タイムライン

安定版リリース: TBD